type Config struct {

	// cookie name
	CookieName string

	// cookie domain
	Domain string

	// If you want to delete the cookie when the browser closes, set it to -1.
	//
	//  0 means no expire, (24 years)
	// -1 means when browser closes
	// >0 is the time.Duration which the session cookies should expire.
	Expires time.Duration

	// gc life time(s)
	GCLifetime int64

	// session life time(s)
	SessionLifetime int64

	// set whether to pass this bar cookie only through HTTPS
	Secure bool

	// sessionId is in url query
	SessionIdInURLQuery bool

	// sessionName in url query
	SessionNameInUrlQuery string

	// sessionId is in http header
	SessionIdInHttpHeader bool

	// sessionName in http header
	SessionNameInHttpHeader string

	// SessionIdGeneratorFunc should returns a random session id.
	SessionIdGeneratorFunc func() string

	// Encode the cookie value if not nil.
	EncodeFunc func(cookieValue string) (string, error)

	// Decode the cookie value if not nil.
	DecodeFunc func(cookieValue string) (string, error)
}